\subsection{Experimental setup}
In order to test the performance of the TinySLAM algorithm a couple of experiments are performed. As a benchmark, the gMapping package of ROS is used in comparison to TinySLAM. 
For experiments a simulation is run with Stage of a Turtlebot exploring a given map, shown in Figure \ref{swarmlab}. The resulting maps are compared to the original map for accuracy.
The following tests are run:
\begin{itemize}
    \item gMapping vs. TinySLAM
	\item save maps after 5, 15 and 30 minutes to evaluate the progress
	\item run the experiments with 2 different starting points, one in a free open space, and one in an occupied area which can only be left by relatively small corridors or doors.
\end{itemize}

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/swarmlab_map.png}
\caption{Map used for experiments}
\label{swarmlab}
\end{figure}


\subsection{Results and Discussion}
The resulting maps are shown in Figures \ref{narrow5} through Figure \ref{open30}.
Each time, in the left picture the current map of the gMapping is given. The right pictures display the progress of the TinySLAM algorithm over time. 

\subsubsection*{Narrow starting point}
The resulting maps for a narrow starting point are shown in Figure \ref{narrow5}, \ref{narrow15} and \ref{narrow30}.
In the beginning both algorithms stick to the small starting area and map this in detail. It can already be observed that the gMapping algorithm outputs a more accurate map with straight and more distinct walls whereas, TinySLAM overshoots walls, which can be seen by the empty cells displayed behind walls. Another problem for the TinySLAM algorithm can be seen on the left in the TinySLAM map after 5 minutes. The map shows that noise in the laser range finder will be registered as walls. 

After 15 minutes, both algorithms have started exploring neighboring areas. However, the navigation algorithm has trouble going through narrow passageways like doors. Even with the help of the navigational aids, this still poses a problem.
Also, the major problem for TinySLAM, concerning sensor noise, can still be noticed. The algorithm currently has the belief that a wall is in the middle of the left area on the map.

In the last figure, the gMapping map is very similar to the map taken 15 minutes before. The TinySLAM map, however, is more accurate than its predecessor. The TinySLAM algorithm managed to correct most of the errors on the map, because it was able to observe more areas more closely.

At this point, it can be concluded that the TinySLAM algorithm in cooperation with the proposed navigation and exploration algorithms is able to handle narrow areas better than the gMapping algorithm. The gMapping yields more a more accurate output in comparison to the TinySLAM. 

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/gmap_narrow_5.png}
\hspace{5pt}
\includegraphics[width=0.2\textwidth]{images/tiny_narrow_5.png}
\caption{Narrow starting point after 5 minutes.}
\label{narrow5}
\end{figure}

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/gmap_narrow_15.png}
\hspace{5pt}
\includegraphics[width=0.2\textwidth]{images/tiny_narrow_15.png}
\caption{Narrow starting point after 15 minutes.}
\label{narrow15}
\end{figure}

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/gmap_narrow_30.png}
\hspace{5pt}
\includegraphics[width=0.2\textwidth]{images/tiny_narrow_30.png}
\caption{Narrow starting point after 30 minutes.}
\label{narrow30}
\end{figure}


\subsubsection*{Open starting point}
The resulting maps for an open starting point are shown in Figures \ref{open5}, \ref{open15} and \ref{open30}. 
Just like observed in the narrow starting point experiment, both algorithms start by exploring the area they are in. Again, the gMapping produces an accurate map with straight walls and few artifacts. Furthemore, the TinySLAM shows the same problems as described above, namely overshooting walls and generating walls from noise.

After 15 minutes of exploration, gMapping has completely mapped the big area and has already started with scanning the smaller neighboring area.

However, after 30 minutes, the TinySLAM algorithm has explored and mapped more space than the gMapping algorithm. In comparison to the narrow starting point, this experiment explored a far greater area. Both TinySLAM and gMapping started exploring more neighboring areas. 

Additionally, despite the fact that TinySLAM is overshooting walls, it managed to produce a fairly complete but roughly accurate map. Beneficial for TinySLAM was that the goals in the neighboring areas were all computed along the wall which divides the areas vertically. 

In general, a faster exploration suits TinySLAM better, because the laser scan noise can introduce map artifacts over time. TinySLAM does not keep track of scan history and therefore scan noise can accumulate over time.
For gMapping, however, postprocessing scan data reduces that problem. Therefore, gMapping will outperform TinySLAM in accuracy.

Narrow passageways are a problem in case you rely on the generated map for navigation. It would be more robust to rely on actual sensor data while driving, because odometry errors can be reduced. In addition, obstacle avoidance is more robust this way.
Map artifacts can influence the performance of path planning negatively.

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/gmap_open_5.png}
\hspace{5pt}
\includegraphics[width=0.2\textwidth]{images/tiny_open_5.png}
\caption{Open starting point after 5 minutes.}
\label{open5}
\end{figure}

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/gmap_open_15.png}
\hspace{5pt}
%\includegraphics[width=0.2\textwidth]{images/tiny_open_15.png}
\caption{Open starting point after 15 minutes.}
\label{open15}
\end{figure}

\begin{figure}[h!]
\centering
\includegraphics[width=0.2\textwidth]{images/gmap_open_30.png}
\hspace{5pt}
\includegraphics[width=0.2\textwidth]{images/tiny_open_30.png}
\caption{Open starting point after 30 minutes.}
\label{open30}
\end{figure}
\hspace{15pt}
